package visitors;

import nodes.FieldNode;
import nodes.*;
import nodes.body.*;
import nodes.declarations.*;
import nodes.exprnodes.*;
import nodes.exprnodes.bin.*;
import nodes.exprnodes.consts.*;
import nodes.exprnodes.sequences.*;
import nodes.exprnodes.unary.*;
import nodes.exprnodes.variables.*;
import nodes.statements.*;
import nodes.statements.controlflow.*;

public interface Visitor
{
    public Object visit(BoolNode n);
    public Object visit(AndNode n);
    public Object visit(CharNode n);
    public Object visit(ConcatNode n);
    public Object visit(DivideNode n);
    public Object visit(FloatNode n);
    public Object visit(nodes.exprnodes.FuncCallNode n);
    public Object visit(GreaterNode n);
    public Object visit(GreaterOrEqualNode n);
    public Object visit(IdNode n);
    public Object visit(InNode n);
    public Object visit(IndexNode n);
    public Object visit(IntNode n);
    public Object visit(LenNode n);
    public Object visit(LessNode n);
    public Object visit(LessOrEqualNode n);
    public Object visit(ListNode n);
    public Object visit(MinusNode n);
    public Object visit(NotEqualNode n);
    public Object visit(NotInNode n);
    public Object visit(NotNode n);
    public Object visit(OrNode n);
    public Object visit(PlusNode n);
    public Object visit(PowerNode n);
    public Object visit(StringNode n);
    public Object visit(TimesNode n);
    public Object visit(TupleNode n);
    public Object visit(BasicDeclarationNode n);
    public Object visit(DataDeclarationNode n);
    public Object visit(FieldNode n);
    public Object visit(FunctionDeclarationNode n);
    public Object visit(ProgramNode n);
    public Object visit(EqualNode n);
    public Object visit(nodes.statements.FuncCallNode n);
    public Object visit(FunctionBodyNode n);
    public Object visit(IfNode n);
    public Object visit(RepeatNode n);
    public Object visit(WhileNode n);
    public Object visit(AssignNode n);
    public Object visit(StatementListNode n);
    public Object visit(BlockBodyNode n);
    public Object visit(DeclarationListNode n);
    public Object visit(VariableListNode n);
    public Object visit(UserDeclarationNode n);
}